Golang
Validator 資料驗證
如果我們有需要做資料或者數據相關的檢驗,我們可以考慮使用validator,跟先前一樣,需要先在終端機使用go get取得該套件,然後在import引用該套件。
直接上個範例程式碼來瞧瞧
package main
import (
"fmt"
"github.com/go-playground/validator"
)
type User struct {
Username string `validate:"min=4,max=10"`
Age uint8 `validate:"gte=1,lte=10"`
Sex string `validate:"oneof=female male"`
}
func main() {
validate := validator.New()
user1 := User{Username: "tom", Age: 11, Sex: "null"}
err := validate.Struct(user1)
if err != nil {
fmt.Println(err)
}
user2 := User{Username: "Annabelle", Age: 8, Sex: "male"}
err = validate.Struct(user2)
if err != nil {
fmt.Println(err)
}
}
執行起來會得到
Key: 'User.Username' Error:Field validation for 'Username' failed on the 'min' tag
Key: 'User.Age' Error:Field validation for 'Age' failed on the 'lte' tag
Key: 'User.Sex' Error:Field validation for 'Sex' failed on the 'oneof' tag
從字面上來理解看看發生了什麼事情
User.Username 不符合min的規範
User.Age 不符合lte的規範
User.Sex 不符合oneof的規範
那我們可以設定那些規則呢?
所以回來看剛剛的code
Username string `validate:"min=4,max=10"`
Age uint8 `validate:"gte=1,lte=10"`
Sex string `validate:"oneof=female male"`
Username 最小是4 最大是10
Age 必須大於等於1,小於等於10
Sex 必須是male和female其中一個